www.gusucode.com > VC 调用控制面板各种对话框-源码程序 > VC 调用控制面板各种对话框-源码程序/code/SystemDialog.cpp
//Download by http://www.NewXing.com // SystemDialog.cpp: implementation of the CSystemDialog class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "SystemDialog.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #define NUM_SYSTEM_DIALOGS 16 #ifdef _UNICODE typedef void (_stdcall *PFUNCTION_ENTRYPOINT)( HWND hwndStub, HINSTANCE hAppInstance, LPWSTR lpCmdLine, int nCmdShow ); #else typedef void (_stdcall *PFUNCTION_ENTRYPOINT)( HWND hwndStub, HINSTANCE hAppInstance, LPSTR lpCmdLine, int nCmdShow ); #endif //iSystemDialogID, cDllName, cFuncName, cCommand static SystemDialog SDArray[NUM_SYSTEM_DIALOGS]= #ifndef _UNICODE //ANSI { {SD_FORMAT, _T("Shell32.dll"), "SHFormatDrive", ""}, {SD_INTERNET_OPTIONS, _T("Shell32.dll"), "Control_RunDLLA", "inetcpl.cpl,,0"}, {SD_ADD_REMOVE_PROGRAMS, _T("Shell32.dll"), "Control_RunDLLA", "appwiz.cpl"}, {SD_DATE_TIME, _T("Shell32.dll"), "Control_RunDLLA", "timedate.cpl"}, {SD_DISPLAY, _T("Shell32.dll"), "Control_RunDLLA", "desk.cpl"}, {SD_MODEM, _T("Shell32.dll"), "Control_RunDLLA", "modem.cpl"}, {SD_MULTIMEDIA, _T("Shell32.dll"), "Control_RunDLLA", "mmsys.cpl,,0"}, {SD_MOUSE, _T("Shell32.dll"), "Control_RunDLLA", "main.cpl @0"}, {SD_NETWORK, _T("Shell32.dll"), "Control_RunDLLA", "netcpl.cpl"}, {SD_PASSWORD, _T("Shell32.dll"), "Control_RunDLLA", "password.cpl"}, {SD_SYSTEM, _T("Shell32.dll"), "Control_RunDLLA", "sysdm.cpl,,0"}, {SD_REGIONAL_SETTINGS, _T("Shell32.dll"), "Control_RunDLLA", "intl.cpl,,0"}, {SD_SOUNDS, _T("Shell32.dll"), "Control_RunDLLA", "mmsys.cpl @1"}, {SD_GAME_CONTROLLERS, _T("Shell32.dll"), "Control_RunDLLA", "joy.cpl"}, {SD_KEYBOARD, _T("Shell32.dll"), "Control_RunDLLA", "main.cpl @1"}, {SD_DEVICE_MANAGER, _T("DevMgr.dll"), "DeviceManager_ExecuteA", " " /*set device ID here*/} }; #else //UNICODE { {SD_FORMAT, _T("Shell32.dll"), "SHFormatDrive", ""}, {SD_INTERNET_OPTIONS, _T("Shell32.dll"), "Control_RunDLLW", "inetcpl.cpl,,0"}, {SD_ADD_REMOVE_PROGRAMS, _T("Shell32.dll"), "Control_RunDLLW", "appwiz.cpl"}, {SD_DATE_TIME, _T("Shell32.dll"), "Control_RunDLLW", "timedate.cpl"}, {SD_DISPLAY, _T("Shell32.dll"), "Control_RunDLLW", "desk.cpl"}, {SD_MODEM, _T("Shell32.dll"), "Control_RunDLLW", "modem.cpl"}, {SD_MULTIMEDIA, _T("Shell32.dll"), "Control_RunDLLW", "mmsys.cpl,,0"}, {SD_MOUSE, _T("Shell32.dll"), "Control_RunDLLW", "main.cpl @0"}, {SD_NETWORK, _T("Shell32.dll"), "Control_RunDLLW", "netcpl.cpl"}, {SD_PASSWORD, _T("Shell32.dll"), "Control_RunDLLW", "password.cpl"}, {SD_SYSTEM, _T("Shell32.dll"), "Control_RunDLLW", "sysdm.cpl,,0"}, {SD_REGIONAL_SETTINGS, _T("Shell32.dll"), "Control_RunDLLW", "intl.cpl,,0"}, {SD_SOUNDS, _T("Shell32.dll"), "Control_RunDLLW", "mmsys.cpl @1"}, {SD_GAME_CONTROLLERS, _T("Shell32.dll"), "Control_RunDLLW", "joy.cpl"}, {SD_KEYBOARD, _T("Shell32.dll"), "Control_RunDLLW", "main.cpl @1"}, {SD_DEVICE_MANAGER, _T("DevMgr.dll"), "DeviceManager_ExecuteA", " " /*set device ID here*/} }; #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CSystemDialog::CSystemDialog() { } CSystemDialog::~CSystemDialog() { } void CSystemDialog::DoModal(int iDialogID, HWND hParent) { for (int i=0; i<NUM_SYSTEM_DIALOGS; i++) { if (iDialogID==SDArray[i].iSystemDialogID) { PFUNCTION_ENTRYPOINT pEntryPoint=NULL; HINSTANCE hInst=AfxGetInstanceHandle(); HMODULE hModule = LoadLibrary(SDArray[i].cDllName); if (hModule) { pEntryPoint = (PFUNCTION_ENTRYPOINT) GetProcAddress(hModule, SDArray[i].cFuncName); } if (pEntryPoint) { pEntryPoint(hParent, hInst, SDArray[i].cCommand, SW_SHOW); } break; } } }